package com.ruoyi.yf.domain;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.springframework.lang.NonNull;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Size;

/**
 * 医院科室对象 yf_dept
 *
 * @author XiaoYi...
 * @date 2020-03-11
 * 2932f7c2-0601-4394-9e87-245aa2cf7f35
 */
@ApiModel
@JsonInclude(JsonInclude.Include.NON_NULL)
public class YfDept extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 科室id
     */
    @Excel(name = "科室id")
    @ApiModelProperty(value = "科室id")
    private Long deptId;

    /**
     * 科室类型
     */
    @Excel(name = "科室类型")
    @NotBlank(message = "科室类型不能为空")
    private String type;
    /**
     * 科室名称
     */
    @Excel(name = "科室名称")
    @NotEmpty(message = "科室名称不能为空")
    @ApiModelProperty(value = "科室名称")
    private String deptName;

    // 标准科室代码、名称
    private String standardDeptCode;
    @Excel(name = "标准科室名称")
    private String standardDeptName;

    // 分组编号、分组名称
    @Size(min = 1, max = 999, message = "分组编号为三位数字")
    private Integer groupNo;
    private String groupName;

    /**
     * 科室负责人姓名
     */
    @Excel(name = "科室负责人姓名")
    @NotEmpty(message = "科室负责人不能为空")
    @ApiModelProperty(value = "科室负责人姓名")
    private String deptUserName;

    /**
     * 科室电话
     */
    @Excel(name = "科室电话")
    private String deptTel;

    /**
     * 科室负责人电话
     */
    @Excel(name = "科室负责人电话")
    private String deptIphone;

    /**
     * 医院id
     */
    @Excel(name = "医院id")
    @NotEmpty(message = "未找到医院值")
    @ApiModelProperty(value = "医院id")
    private Long hospitalId;
    private String hospitalName;

    // 医疗机构是否使用院内医废系统
    private String isUseYnyfSys;

    /**
     * 暂存点id
     */
    private Long stagingId;
    private String stagingName;

    /**
     * 状态（0正常 1停用）
     */
    @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
    private String status;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;

    /**
     * 楼号id
     */
    @Excel(name = "楼号id")
    @Size(min = 1, max = 99, message = "楼号为两位数字")
    @ApiModelProperty(value = "楼号id")
    private int buildingNo;

    public YfDept() {
    }

    public YfDept(@NotEmpty(message = "未找到医院值") Long hospitalId) {
        this.hospitalId = hospitalId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptUserName(String deptUserName) {
        this.deptUserName = deptUserName;
    }

    public String getDeptUserName() {
        return deptUserName;
    }

    public String getIsUseYnyfSys() {
        return isUseYnyfSys;
    }

    public void setIsUseYnyfSys(String isUseYnyfSys) {
        this.isUseYnyfSys = isUseYnyfSys;
    }

    public void setDeptTel(String deptTel) {
        this.deptTel = deptTel;
    }

    public String getDeptTel() {
        return deptTel;
    }

    public void setDeptIphone(String deptIphone) {
        this.deptIphone = deptIphone;
    }

    public String getDeptIphone() {
        return deptIphone;
    }

    public void setHospitalId(Long hospitalId) {
        this.hospitalId = hospitalId;
    }

    public Long getHospitalId() {
        return hospitalId;
    }

    public Long getStagingId() {
        return stagingId;
    }

    public void setStagingId(Long stagingId) {
        this.stagingId = stagingId;
    }

    public String getHospitalName() {
        return hospitalName;
    }

    public void setHospitalName(String hospitalName) {
        this.hospitalName = hospitalName;
    }

    public String getStagingName() {
        return stagingName;
    }

    public void setStagingName(String stagingName) {
        this.stagingName = stagingName;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public String getStandardDeptCode() {
        return standardDeptCode;
    }

    public void setStandardDeptCode(String standardDeptCode) {
        this.standardDeptCode = standardDeptCode;
    }

    public String getStandardDeptName() {
        return standardDeptName;
    }

    public void setStandardDeptName(String standardDeptName) {
        this.standardDeptName = standardDeptName;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setBuildingNo(int buildingNo) {
        this.buildingNo = buildingNo;
    }

    public int getBuildingNo() {
        return buildingNo;
    }

    public Integer getGroupNo() {
        return groupNo;
    }

    public void setGroupNo(Integer groupNo) {
        this.groupNo = groupNo;
    }

    public String getGroupName() {
        return groupName;
    }

    public void setGroupName(String groupName) {
        this.groupName = groupName;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("deptId", getDeptId())
                .append("deptName", getDeptName())
                .append("deptUserName", getDeptUserName())
                .append("deptTel", getDeptTel())
                .append("deptIphone", getDeptIphone())
                .append("hospitalId", getHospitalId())
                .append("stagingId", getStagingId())
                .append("status", getStatus())
                .append("delFlag", getDelFlag())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .append("type", getType())
                .append("buildingNo", getBuildingNo())
                .toString();
    }
}
